package 代码记录.Bit48天集训;

import java.util.Arrays;

/**
 * 1.扑克牌顺子
 * 2.左旋转字符串
 * @author zx
 * @create 2022-07-23 18:08
 */
public class InterView {
    /**
     * 必须满足两个条件
     * 1. 除0外没有重复的数
     * 2. max - min < 5
     * 考略到顺子的特性,最大值和最小值之差绝对为4
     * 然而又有大小王的存在,所以numbers[4] - numbers[flag] < 5
     */
    public boolean IsContinuous(int [] numbers) {
        Arrays.sort(numbers);
        int flag = 0;

        for(int i = 0;i < 5;i++){
            if(numbers[i] == 0){
                flag++;
            }
            if(i != 0 && numbers[i] != 0 && numbers[i - 1] == numbers[i]){
                return false;
            }
        }
        return numbers[4] - numbers[flag] < 5;
    }


    /**
     * @return 方法一
     */
    public String LeftRotateString(String str,int n) {
        if(str == null || str.length() == 0){
            return "";
        }
        n = n % str.length();
        return str.substring(n, str.length()) + str.substring(0, n);
    }

    /**
     * @return 方法二
     */
    public String LeftRotateString2(String str,int n) {
        StringBuilder res = new StringBuilder();
        for(int i = n; i < n + str.length(); i++)
            res.append(str.charAt(i % str.length()));
        return res.toString();
    }
}
